﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace EFITransmissao
{
    public partial class FrmADM : Form
    {
        #region Atributos da Classe
        
        public  int _matricula;
        public string _leiturista;
        public int _grupofat;
        public string _mesFat;
        
        #endregion

        #region Propriedades da Classe
        
        public int Matricula
        {
            get { return _matricula; }
            set { _matricula = value; }
        }
        public string Leiturista
        {
            get { return _leiturista; }
            set { _leiturista = value; }
        }
        public int Grupofat
        {
            get { return _grupofat; }
            set { _grupofat = value; }
        }
        public string MesFat
        {
            get { return _mesFat; }
            set { _mesFat = value; }
        }

        #endregion
                
        public FrmADM()
        {
            InitializeComponent();
        }

        private void pbBuscarTbl_Click(object sender, EventArgs e)
        {
            dtGrid.Visible = true;
            pnTransmissao.Hide();
            switch (cbTabelas.Text)
            {
                case "CONTROLE":
                    ckVisualzFoto.Visible = false;
                    dtGrid.DataSource = Controle.CtlLeitura.ObterTodosControle();
                    break;
                case "LEITURAS":
                    dtGrid.DataSource = Controle.CtlLeitura.ObterTodosLeitura();                    
                    ckVisualzFoto.Visible = true;
                    break;
                case "CAD MEDIDOR":
                    dtGrid.DataSource = Controle.CtlLeitura.ObterTodosCadMedidor();
                    ckVisualzFoto.Visible = false;
                    break;
                case "TROCA ROTA":
                    ckVisualzFoto.Visible = false;
                    dtGrid.DataSource = Controle.CtlLeitura.ObterTodosTrocaRota();
                    break;
                default:                    
                    break;                    
            }
        }

        private void FrmADM_Load(object sender, EventArgs e)
        {            
            DesabilitarForm();
            pnTransmissao.Hide();
            panel.Show();
            ipTecladoAdm.Enabled = true;
            txtSenha.Focus();            
        }

        private void btEntrar_Click(object sender, EventArgs e)
        {
            ipTecladoAdm.Enabled = false;
            if (txtSenha.Text == "c0l3t@")
            {
                panel.Hide();
                HabilitarForm();
                lkTransmissao.Visible = true;
            }
            else
            {
                txtSenha.Text = string.Empty;
                txtSenha.Focus();
                MessageBox.Show("Você não tem permissão.","Atenção!",MessageBoxButtons.OK,MessageBoxIcon.Hand,MessageBoxDefaultButton.Button1);
            }
        }

        private void HabilitarForm()
        {
            lkFechar.Visible = true;
            lbTbl.Visible = true;
            cbTabelas.Visible = true;
            pbBuscarTbl.Visible = true;
            dtGrid.Visible = true;                        
        }

        private void DesabilitarForm()
        {            
            lkFechar.Visible = false;
            lbTbl.Visible = false;
            cbTabelas.Visible = false;
            pbBuscarTbl.Visible = false;
            dtGrid.Visible = false;
            pnTransmissao.Hide();            
        }

        private void btCancel_Click(object sender, EventArgs e)
        {
            ipTecladoAdm.Enabled = false;
            this.Close();
        }

        private void lkFechar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void lkTransmissao_Click(object sender, EventArgs e)
        {
            ckVisualzFoto.Checked = false;
            ckVisualzFoto.Visible = false;
            if (pnTransmissao.Visible == true)
            {
                pnTransmissao.Hide();
                dtGrid.Visible = true;
            }
            else
            {

                pnTransmissao.Show();
                DataTable dt = new DataTable();
                dt = Controle.CtlLeitura.ObterKeyTblControle();
                foreach (DataRow item in dt.Rows)
                {
                    txtMatriculaLeiturista.Text = item["Matricula"].ToString() + "-" + item["Leiturista"].ToString();
                    txtGF.Text = item["Remessa"].ToString();
                    txtMes.Text = item["MesFat"].ToString().Substring(3,7);

                    _matricula = int.Parse(item["Matricula"].ToString());
                    _grupofat = int.Parse(item["Remessa"].ToString());
                    _mesFat = item["MesFat"].ToString().Substring(3, 2) + item["MesFat"].ToString().Substring(6, 4);
                }
                
                dtGrid.Visible = false;
            }            
        }

        private void btRoteiro_Click(object sender, EventArgs e)
        {
            try
            {
                Entidade.Roteiro obj = new EFITransmissao.Entidade.Roteiro();
                obj.Matricula = _matricula.ToString();
                obj.MesFat = _mesFat;
                obj.Remessa = _grupofat;

                Controle.CtlControle.DesmarcarRoteiroSQL(obj);
                obj.MesFat = "01/" + _mesFat.Substring(0, 2) + "/" + _mesFat.Substring(2, 4);
                Controle.CtlControle.Desmarcar_PartesREC_SQL(obj);

                // Limpa o status de roteiro recebido no DB Leitura no
                // projeto EFI_Sulgipe.
                Controle.CtlLeitura.LimparStatusRoteiroRecebido();

                MessageBox.Show("O Roteiro pode recebido novamente!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }
            catch (Exception)
            {
                MessageBox.Show("Não foi encontrado o sinal da rede Wi-fi.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                throw;
            }
            finally { }
            
        }

        private void btLeitura_Click(object sender, EventArgs e)
        {
            try
            {
                Entidade.Roteiro obj = new EFITransmissao.Entidade.Roteiro();
                obj.Matricula = _matricula.ToString();
                obj.MesFat = _mesFat;
                obj.Remessa = _grupofat;

                Controle.CtlControle.DesmarcarLeiturasSQL(obj);
                obj.MesFat = "01/" + _mesFat.Substring(0, 2) + "/" + _mesFat.Substring(2, 4);
                Controle.CtlControle.Desmarcar_PartesENV_SQL(obj);

                // Limpa o status de Leituras Enviadas no DB Leitura no
                // projeto EFI_Sulgipe.
                Controle.CtlLeitura.LimparStatusLeiturasEnviadas();
                MessageBox.Show("As Leituras podem ser reenviadas!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }
            catch (Exception)
            {
                MessageBox.Show("Não foi encontrado o sinal da rede Wi-fi.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                throw;
            }
            finally { }
        }

        private void lkFecharFoto_Click(object sender, EventArgs e)
        {
            pnFoto.Visible = false;
        }

        private void dtGrid_CurrentCellChanged(object sender, EventArgs e)
        {
            try
            {
                if (cbTabelas.Text == "LEITURAS" && ckVisualzFoto.Checked == true )
                {
                    pnFoto.Visible = true;
                    DataSet dsData = new DataSet();

                    DataRow drw = Controle.CtlLeitura.ObterLeiturasIdFoto(dtGrid.CurrentRowIndex);
                    string linha = drw[0].ToString();

                    if (linha != string.Empty)
                        Foto.Image = Controle.CtlLeitura.ObterFoto(linha);
                    else
                        pnFoto.Visible = false;

                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }            
        }

    }
}